草庐IT

等效的 iOS StackPanel

全部标签

c++ - 显式默认的复制 ctor 生成比手写等效代码更好的代码

我发现生成的代码有所不同,这取决于我是显式默认复制构造函数还是手写相同的东西。这是一个简单的类,只包含一个int并在其上定义了一些算术运算符。clang和g++都以类似的方式处理这种情况,所以这让我想知道这是否有潜在的语言要求,如果有,它在做什么?如果可能的话,在标准中寻找引文。:)为了展示这一点,我以两种方式编写了average()函数,对原始ints和Holders进行操作。我希望两者生成相同的代码。这是输出:显式默认的复制构造函数:average(Holder,Holder):addesi,edimoveax,esishreax,31addeax,esisareaxretaver

c++ - Python 标准库的 C/C++ 等效项

我非常依赖Python'sstandardlibrary,对于有用的数据结构和操纵器(例如collections和itertools)和实用程序(例如optparse、json和logging),都可以跳过样板文件并完成工作。翻阅有关C++标准库的文档,它似乎完全是关于数据结构的,几乎没有Python标准库中的“电池”。Boost库是我所知道的唯一一个类似于Python标准库的开源C++库集合,尽管它确实具有正则表达式支持等实用程序库,但其中大部分也专用于数据结构。我真的很惊讶,即使是像保证解析和编写CSV文件这样简单的事情,使用Pythoncsvmodule也变得非常简单。,看起来需

c++ - Linux 上是否有等效的 .def 文件来控制共享库中导出的函数名称?

我正在Ubuntu9.10上构建一个共享库。我只想从库中导出我的一部分函数。在Windows平台上,这将使用模块定义(.def)文件来完成,该文件将包含从库中导出的函数的外部和内部名称列表。我有以下问题:如何将共享库的导出函数限制为我想要的函数(即.def文件等效项)以.def文件为例,您可以为函数指定与其内部名称不同的外部名称(有助于防止名称冲突以及重新修饰名称困惑等)在windows上我可以使用EXPORT命令(IIRC)检查导出的函数和地址列表,在Linux上执行此操作的等效方法是什么? 最佳答案 在linux上仅使某些符号在

c++ - en_US.UTF-8 语言环境的 Windows 等效项是什么?

如果我想在Windows上进行以下工作,正确的语言环境是什么以及如何检测它是否实际存在:Doesthiscodeworkuniversaly,orisitjustmysystem? 最佳答案 虽然对命名语言环境没有很好的支持,但VisualStudio2010确实包含C++11所需的UTF-8转换方面:std::codecvt_utf8用于UCS2和std::codecvt_utf8_utf16用于UTF-16:#include#include#include#include#includevoidprepare_file(){//

c++ - Mac OS X 下的 _wfopen 等效项

我正在寻找相当于Windows_wfopen()在MacOSX下。有什么想法吗?我需要这个来移植一个使用wchar*作为其文件接口(interface)的Windows库。由于这是一个跨平台库,我无法依赖客户端应用程序如何获取文件路径并将其提供给库。 最佳答案 MacOSX中的POSIXAPI可用于UTF-8字符串。为了将wchar_t字符串转换为UTF-8,可以使用MacOSX中的CoreFoundation框架。这是一个类,它将从wchar_t字符串包装一个UTF-8生成的字符串。classUtf8{public:Utf8(co

c++ - 编译时等效的 std::cout,或 c++11 中编译时常量值的 static_assert 字符串化

有没有办法打印constexpr的值?或#defined编译时的值?我想要std::cout的等价物,或某种方式来做类似的事情constexprintPI_INT=4;static_assert(PI_INT==3,const_str_join("PI_INTmustbe3,not",const_int_to_str(PI_INT)));编辑:我可以使用constexpr进行一些基本的编译时打印s,至少在gcc上做类似的事情templatestructdisplay_non_zero_int_value;templatestructdisplay_non_zero_int_value{

c++ - 是否有与 Java 的 BigDecimal 等效的 C++?

我正在寻找可以进行十进制浮点运算的C++类。看透http://speleotrove.com/decimal/有指向人们编写但未维护的各种类的链接。挖掘decNumber++的内容后,我收到了一些电子邮件,表明GCC最终将支持此功能。(正式名称为ISO/IECTR24733)我正在寻找可以用来替代float或double的东西,这是其他人在他们自己的项目中使用的东西。希望开源。谢谢!编辑:我应该指出我试图用它来表示价格。所以我需要精确的小数,而不是巨大的小数。 最佳答案 存在一个名为GMP(GNUmultipleprecisionl

c++ - 如何强制编译器为手动切换生成等效代码?

任务很简单:我们有一个类型列表(即usinglist=std::tuple;),我们希望根据运行时已知的索引来调度其内容。"dispatch"是指调用模板化处理程序,由该列表中的类型参数化。写一个switch很容易手动:templateautodispatch(size_ti,Args&&...args){switch(i){case0:returnhandler::type>(std::forward(args)...);...}}但这很乏味、容易出错并且很无聊。我正在寻找一种方法来强制编译器通过一些更紧凑和简洁的定义来完成它。我想达到与手动开关相同或非常接近的结果。因此,生成函数指

c++ - freopen() 等效于 c++ 流

当使用c风格的i/o进行编程时,我有时会使用freopen()来重新打开标准输入以进行测试,这样我就不必一遍又一遍地重新输入输入。我想知道是否有c++i/o流的等价物。另外,我知道我可以使用管道在命令行/终端/whateveritis上重定向它,但我想知道是否有办法在我的代码中执行此操作(因为如您所见,我对cl/t/w)。 最佳答案 freopen也适用于cin和cout.无需寻找新的东西。freopen("input.txt","r",stdin);//redirectsstandardinputfreopen("output.t

c++ - 为什么这个 Ruby 代码比等效的 C++ 代码快得多?

最近我一直在处理一些简单的项目Euler问题并用Ruby和C++解决它们。但是对于Problem14关于Collat​​z猜想,我的C++代码运行了大约半小时,然后我终止了它,但是当我将代码翻译成Ruby时,它在9秒内就解决了。这种差异让我难以置信-我一直被认为C++几乎总是比Ruby快,尤其是在数学处理方面。我的代码如下。C++:#includeusingnamespacestd;intmain(){inta=2;intb=2;intc=0;while(bc){cout运行时间-老实说,我不知道,但这真的很长。和鲁比:#!/usr/bin/ruby-wa=0b=2c=0whilebc